<?php
namespace model;

class SessionLoginModel {
    private static $m_sessionNameUsername ="Session_Username";
    private static $m_sessionNamePassword ="Session_Password";
    private static $m_sessionWebBrowser = "Web_Browser";
    private static $m_sessionHTTP_USER_AGENT = "HTTP_USER_AGENT";
    private static $m_sessionUserHasBeenLogedIn = "userHasBeenLogedIn";
    public $m_userHasBeenLogedIn = false;


    /**
    * @param string \model\LoginModel $validUsername
    * @param string \model\LoginModel $validPassword
    *
    * Här sparar vi undan våra rätta inloggningsuppgifter och sparar dem i vår sessionskaka
    */
	public function setSessionCookies($validUsername, $validPassword) {
            $_SESSION[self::$m_sessionNameUsername] = $validUsername; // i sessions kakan arrayen lägger i rätt användarnamn
            $_SESSION[self::$m_sessionNamePassword] = $validPassword; // i sessions kakan arrayen lägger i rätt lösenord
            $_SESSION[self::$m_sessionWebBrowser] =  $_SERVER[self::$m_sessionHTTP_USER_AGENT]; //Hämtar ut vad det är för webläsare och lägger in i min session kaka
            $_SESSION[self::$m_sessionUserHasBeenLogedIn] = "1";
    }


    /**
    * @return boolean
    *
    * här kollar vi om det finns några sessions-kakor sparade
    */
    public function hasSessionCookies() {
        if (isset($_SESSION[self::$m_sessionNameUsername]) && isset($_SESSION[self::$m_sessionNamePassword])) {
            return true;
        } else {
              return false;
        }
    }


    /**
    * @return string
    *
    * här returneras användarnamnet ifrån vår sessionskaka
    */
    public function returnSessionUsername() {
        if (isset($_SESSION[self::$m_sessionNameUsername])) {
            return $_SESSION[self::$m_sessionNameUsername] ;
        }
    }


   /**
    * @return string
    *
    * här returneras lösenordet ifrån vår sessionskaka
    */
    public function returnSessionPassword() {
        if (isset($_SESSION[self::$m_sessionNamePassword])) {
            return $_SESSION[self::$m_sessionNamePassword];
        }
    }


    /**
    * @return boolean
    *
    * här kollas så att man använder samma webbläsare som skapade sessionskakan
    */
    public function checkIfSessionBrowserIsOK() {
        if (isset($_SESSION[self::$m_sessionWebBrowser])) {

            if($_SESSION[self::$m_sessionWebBrowser] == $_SERVER[self::$m_sessionHTTP_USER_AGENT]) {
                return true;
            }
            else {
                return false;
            }
        } else {
            return false;
        }
    }


    /**
    * här nollar vi våra sessions-kakor om tex användaren valt att logga ut
    */
    public function resetSessionCookies() {
        if (isset($_SESSION[self::$m_sessionNameUsername]) && isset($_SESSION[self::$m_sessionNamePassword])) {
            unset($_SESSION[self::$m_sessionNameUsername]);
            unset($_SESSION[self::$m_sessionNamePassword]);
        }
    }


    /**
    * här kollar vi om användaren har varit inloggad
    */
    public function hasBeenLogedIn() {
        if (isset($_SESSION[self::$m_sessionUserHasBeenLogedIn])) {

            if ($_SESSION[self::$m_sessionUserHasBeenLogedIn] == "1") {
                $_SESSION[self::$m_sessionUserHasBeenLogedIn] = "0";
                $this->m_userHasBeenLogedIn = true;
            } else {
                 $this->m_userHasBeenLogedIn = false;
            }
        } else {
             $this->m_userHasBeenLogedIn = false;
        }
    }

}

